package org.geo.common.log;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Random;

/**
 * 日志工具
 *
 * @author ljy
 */
public class Log {
    private static final Logger logger = LoggerFactory.getLogger(Log.class);

    public static void d(Throwable t, String msg) {
        logger.debug(getTraceId() + msg, t);
    }

    public static void d(String msg) {
        logger.debug(msg);
    }

    public static void i(Throwable t, String msg) {
        logger.info(getTraceId() + msg, t);
    }

    public static void i(String msg) {
        logger.info(msg);
    }

    public static void w(Throwable t, String msg) {
        logger.warn(getTraceId() + msg, t);
    }

    public static void w(String msg) {
        logger.warn(msg);
    }

    public static void e(Throwable t, String msg) {
        logger.error(getTraceId() + msg, t);
    }

    public static void e(Throwable t, boolean needTraceId, String msg) {
        if (needTraceId) {
            logger.error(getTraceId(), t);
        } else {
            logger.error(msg, t);
        }
    }

    public static void e(Throwable t) {
        logger.error(getTraceId(), t);
    }

    public static void e(String msg) {
        logger.error(msg);
    }

    public static String getTraceId() {
        long t = System.currentTimeMillis();
        long seed = new Random().nextInt(10000);
        return "[跟踪ID] " + t + seed + " ";
    }

}
